Python+tkinter 简易学生信息管理系统

您所在的位置:网站首页 stu python Python+tkinter 简易学生信息管理系统

Python+tkinter 简易学生信息管理系统

2024-01-08 13:16| 来源: 网络整理| 查看: 265

Python+tkinter 简易学生信息管理系统 1.连接数据库2.创建student表3.python连接MySQL数据库4.主页设计5.录入学生信息6.删除学生信息7.查询学生信息8.修改学生信息9.完整代码

  笔者基于tkinter和pymysql开发出一个简易的学生管理系统。为了方便处理,使用第三方工具navicat连接MySQL,建立数据库及学生信息表。

1.连接数据库

  首先使用第三方工具Navicat连接MySQL,如下图所示。 在这里插入图片描述   接着输入连接名(随意取,这里笔者取的是linkRPC)、主机、端口(默认3306)、用户名(默认root)以及密码,接着点击左下角的“测试连接”按钮,查看是否连接成功。 在这里插入图片描述

2.创建student表

  本项目中笔者创建studentInfo数据库及student表。表的设计如下图所示。 在这里插入图片描述

3.python连接MySQL数据库

  代码如下:

import pymysql '''连接数据库''' def linkDB(): # 打开数据库连接 db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='studentinfo') # 使用 cursor() 方法创建一个游标对象cur cur = db.cursor(cursor=pymysql.cursors.DictCursor) return db,cur 4.主页设计

  首先展示最终的效果,如下图所示。 在这里插入图片描述   主页有左上角的菜单,并有增加、删除、查询和修改子功能,主页中央有4个按钮,分别实现学生信息的增删查改4个子页面的跳转。   实现代码如下:

设置窗口大小以及背景图片: root = Tk() # 禁止最大化按钮(只显示最小化按钮和关闭按钮) root.resizable(False,False) root.minsize(600,600) # 最小尺寸 root.maxsize(600,600) # 最大尺寸 root.title("学生信息管理系统") root.config(width=600) root.config(height=600) # 添加窗口背景图片 canvas = tkinter.Canvas(root, width = 600, # 指定Canvas组件的宽度 height = 600, # 指定Canvas组件的高度 bg = 'white' # 指定Canvas组件的背景色 ) #记得在运行时修改文件所在位置 image = Image.open('F:\\1.jpg') im = ImageTk.PhotoImage(image) #用photoImage打开图片 canvas.create_image(200, 170, image=im) # 使用creat_image将图片添加到Canvas canvas.pack() 添加菜单及功能按钮 #创建顶级菜单及其下拉菜单 menubar=Menu(root) filemenu=Menu(menubar,tearoff=False) filemenu.add_command(label="增加",command=insert_stu) filemenu.add_command(label="删除",command=delete_stu)#command接删除函数/下面接修改函数 filemenu.add_command(label="修改",command=change_stu) filemenu.add_command(label="查询",command=sel_stu) filemenu.add_separator() filemenu.add_command(label="退出",command=root.destroy) menubar.add_cascade(label="菜单",menu=filemenu) #显示菜单 root.config(menu=menubar) buttoninsert_stu=Button(root,text="录入学生信息",font=("微软雅黑 -20"),command=insert_stu) #buttoninsert_stu.grid(row=2,column=0)由下面的代码将该代码覆盖,显示的是在界面上的位置 buttoninsert_stu.place(x=200,y=150,height=40,width=200) buttondelete_stu=Button(root,text="删除学生信息",font=("微软雅黑 -20"),command=delete_stu) buttondelete_stu.place(x=200,y=250,height=40,width=200) buttonchange_stu=Button(root,text="修改学生信息",font=("微软雅黑 -20"),command=change_stu) buttonchange_stu.place(x=200,y=350,height=40,width=200) buttonsel_stu=Button(root,text="查询学生信息",font=("微软雅黑 -20"),command=sel_stu) buttonsel_stu.place(x=200,y=450,height=40,width=200) root.mainloop() 5.录入学生信息

  首先展示页面。 在这里插入图片描述   代码如下:

#增加学生信息 def insert_stu(): #录入学生信息 root1=Tk() root1.title("录入学生信息") root1.config(width=600) root1.config(height=600) #创建关联字符变量 varName=StringVar(root1,value='') varId=StringVar(root1,value='') varClass=StringVar(root1,value='') varAge=StringVar(root1,value='') #创建标签组件 label=Label(root1,text="姓名:",font=("微软雅黑 -20")) label.place(x=30,y=60,height=40,width=80) label=Label(root1,text="学号:",font=("微软雅黑 -20")) label.place(x=30,y=110,height=40,width=80) label=Label(root1,text="班级:",font=("微软雅黑 -20")) label.place(x=30,y=160,height=40,width=80) label=Label(root1,text="年龄:",font=("微软雅黑 -20")) label.place(x=30,y=210,height=40,width=80) #创建文本框组件,同时设置关联的变量 # 姓名entryName # 学号entryId # 班级entryClass # 年龄entryAge entryName=Entry((root1),textvariable=varName) entryName.place(x=120,y=60,height=40,width=200) entryId=Entry((root1),textvariable=varId) entryId.place(x=120,y=110,height=40,width=200) entryClass=Entry((root1),textvariable=varClass) entryClass.place(x=120,y=160,height=40,width=200) entryAge=Entry((root1),textvariable=varAge) entryAge.place(x=120,y=210,height=40,width=200) def buttonOK(): i=0 db, cur = linkDB() stu_id = eval(entryId.get())#学号输入 stu_name =str(entryName.get())#姓名录入 stu_class =eval(entryClass.get())#班级录入 stu_age=eval(entryAge.get())#年龄录入 # 查找完成若有重复的学号,则警告。否则录入数据库 num = cur.execute("SELECT * from student where StuId = " + str(stu_id) + ' ;') if num > 0: i = 1 else: i = 0 if i==1: messagebox.showerror('警告',message='学号重复,请重新输入') else: try: sql1 = "INSERT INTO student(StuId,NAME,CLA,AGE)" sql1+="VALUES(%d,'%s',%d,%d)"%(stu_id,stu_name,stu_class,stu_age) cur.execute(sql1) db.commit() messagebox.showinfo(title='恭喜',message='录入成功!') root1.destroy() except: messagebox.showerror('警告',message='未录入成功') buttonbuttonOK=Button(root1,text="录入学生信息",font=("微软雅黑 -20"),command=buttonOK) buttonbuttonOK.place(x=150,y=300,height=40,width=200) def cancel(): varName.set('') varId.set('') varClass.set('') varAge.set('') #取消键 buttonCancel=Button(root1,text="取消",font=("微软雅黑 -20"),command=cancel) buttonCancel.place(x=150,y=350,height=40,width=200) #退出键 buttondel=Button(root1,text="退出",font=("微软雅黑 -20"),command=root1.destroy) buttondel.place(x=150,y=400,height=40,width=200) root1.mainloop() 6.删除学生信息

  以下是删除学生信息页面: 在这里插入图片描述   代码如下:

# 实现删除学生信息 def delete_stu(): root2=Tk() root2.title("删除学生信息") root2.config(width=600) root2.config(height=600) #添加窗口背景图片 #创建标签 label=Label(root2,text="学号:",font=("微软雅黑 -20")) label.place(x=30,y=20,height=40,width=80) entryId=Entry(root2) entryId.place(x=120,y=20,height=40,width=200) def delete(): db, cur = linkDB() stu_id = eval(entryId.get())#学号输入 cur.execute("DELETE from student where StuId = '%s';"%stu_id) db.commit() messagebox.showinfo(title='恭喜',message='删除成功!') root2.destroy() #删除键 buttondelete=Button(root2,text="删除",font=("微软雅黑 -20"),command=delete) buttondelete.place(x=150,y=160,height=40,width=200) #退出键 buttondel=Button(root2,text="退出",font=("微软雅黑 -20"),command=root2.destroy) buttondel.place(x=150,y=210,height=40,width=200) root2.mainloop() 7.查询学生信息

  查询学生信息页面效果如下: 在这里插入图片描述   代码如下:

# 查询学生信息 def sel_stu(): root3=Tk() root3.title("查询学生信息") root3.config(width=600) root3.config(height=600) #创建关联变量 sId=StringVar(root3,value='') #创建文本组件框\标签组件 label=Label(root3,text="学号",font=("微软雅黑 -20")) label.place(x=30,y=10,height=40,width=80) selId=Entry((root3),textvariable=sId) selId.place(x=120,y=10,height=40,width=200) def select(): #创建关联字符变量 varName=StringVar(root3,value='') varId=StringVar(root3,value='') varClass=StringVar(root3,value='') varAge=StringVar(root3,value='') db, cur = linkDB() stu_id = eval(selId.get())#学号输入 num = cur.execute("SELECT * from student where StuId = '%d';"%stu_id) db.commit() if num > 0: cursor = cur.fetchall() for row in cursor: if stu_id == row['StuId']: stu_name = row['NAME'] stu_class = row['CLA'] stu_age = row['AGE'] varName.set(stu_name) varId.set(stu_id) varClass.set(stu_class) varAge.set(stu_age) else: messagebox.showinfo(title='警告', message='无当前学生信息') #创建标签组件 label=Label(root3,text="姓名:",font=("微软雅黑 -20")) label.place(x=30,y=110,height=40,width=80) label=Label(root3,text="学号:",font=("微软雅黑 -20")) label.place(x=30,y=160,height=40,width=80) label=Label(root3,text="班级:",font=("微软雅黑 -20")) label.place(x=30,y=210,height=40,width=80) label=Label(root3,text="年龄:",font=("微软雅黑 -20")) label.place(x=30,y=260,height=40,width=80) #创建文本框组件,同时设置关联的变量 # 姓名entryName # 学号entryId # 班级entryClass # 年龄entryAge entryName=Entry((root3),textvariable=varName) entryName.place(x=120,y=110,height=40,width=200) entryId=Entry((root3),textvariable=varId) entryId.place(x=120,y=160,height=40,width=200) entryClass=Entry((root3),textvariable=varClass) entryClass.place(x=120,y=210,height=40,width=200) entryAge=Entry((root3),textvariable=varAge) entryAge.place(x=120,y=260,height=40,width=200) #查询键 buttonselect=Button(root3,text="查询",font=("微软雅黑 -20"),command=select) buttonselect.place(x=200,y=60,height=40,width=100) #取消键 def cancel(): sId.set('') buttoncancel=Button(root3,text="取消",font="微软雅黑 -20",command=cancel) buttoncancel.place(x=50,y=60,height=40,width=100) #退出键 buttondel=Button(root3,text="退出",font="微软雅黑 -20",command=root3.destroy) buttondel.place(x=350,y=60,height=40,width=100) root3.mainloop() 8.修改学生信息

  修改学生信息页面如下: 在这里插入图片描述   代码如下:

def change_stu(): root4=Tk() root4.title("修改学生信息") root4.config(width=600) root4.config(height=600) #创建关联变量 sId=StringVar(root4,value='') #创建文本组件框\标签组件 label=Label(root4,text="学号",font=("微软雅黑 -20")) label.place(x=30,y=10,height=40,width=80) selId=Entry((root4),textvariable=sId) selId.place(x=120,y=10,height=40,width=200) #创建关联字符变量 varName=StringVar(root4,value='') varId=StringVar(root4,value='') varClass=StringVar(root4,value='') varAge=StringVar(root4,value='') #创建标签组件 label=Label(root4,text="姓名:",font=("微软雅黑 -20")) label.place(x=30,y=110,height=40,width=80) label=Label(root4,text="学号:",font=("微软雅黑 -20")) label.place(x=30,y=160,height=40,width=80) label=Label(root4,text="班级:",font=("微软雅黑 -20")) label.place(x=30,y=210,height=40,width=80) label=Label(root4,text="年龄:",font=("微软雅黑 -20")) label.place(x=30,y=260,height=40,width=80) #创建文本框组件,同时设置关联的变量 # 姓名entryName # 学号entryId # 班级entryClass # 年龄entryAge entryName=Entry((root4),textvariable=varName) entryName.place(x=120,y=110,height=40,width=200) entryId=Entry((root4),textvariable=varId) entryId.place(x=120,y=160,height=40,width=200) entryClass=Entry((root4),textvariable=varClass) entryClass.place(x=120,y=210,height=40,width=200) entryAge=Entry((root4),textvariable=varAge) entryAge.place(x=120,y=260,height=40,width=200) def select(): db, cur = linkDB() stu_id = eval(selId.get())#学号输入 num = cur.execute("SELECT * from student where StuId = %d;"%stu_id) if num > 0: i = 1 else: i = 0 if i==1: cursor = cur.fetchall() db.commit() for row in cursor: if stu_id == row['StuId']: stu_name = row['NAME'] stu_class = row['CLA'] stu_age = row['AGE'] varName.set(stu_name) varId.set(stu_id) varClass.set(stu_class) varAge.set(stu_age) else: messagebox.showerror('警告',message='无当前学生信息') def saveName(): db, cur = linkDB() name=entryName.get() sql="UPDATE student SET NAME='%s' WHERE StuId=%d;"%(name,eval(selId.get())) cur.execute(sql) db.commit() messagebox.showinfo(title='恭喜',message='保存成功!') def saveCla(): db, cur = linkDB() cla=eval(entryClass.get()) sql = "UPDATE student SET CLA='%s' WHERE StuId=%d;" % (cla, eval(selId.get())) cur.execute(sql) db.commit() messagebox.showinfo(title='恭喜', message='保存成功!') def saveAge(): db, cur = linkDB() age=eval(entryAge.get()) sql="UPDATE student SET AGE=%d WHERE StuId=%d;" % (age,eval(selId.get())) cur.execute(sql) db.commit() messagebox.showinfo(title='恭喜',message='保存成功!') #保存键 buttonname=Button(root4,text="保存",font=("微软雅黑 -20"),command=saveName) buttonname.place(x=330,y=110,height=40,width=60) buttoncla=Button(root4,text="保存",font=("微软雅黑 -20"),command=saveCla) buttoncla.place(x=330,y=210,height=40,width=60) buttonage=Button(root4,text="保存",font=("微软雅黑 -20"),command=saveAge) buttonage.place(x=330,y=260,height=40,width=60) def cancel(): sId.set('') #取消键 buttoncancel=Button(root4,text="取消",font=("微软雅黑 -20"),command=cancel) buttoncancel.place(x=20,y=60,height=40,width=60) #查询键 buttonselect=Button(root4,text="查询",font=("微软雅黑 -20"),command=select) buttonselect.place(x=100,y=60,height=40,width=60) #退出键 buttondel=Button(root4,text="退出",font="微软雅黑 -20",command=root4.destroy) buttondel.place(x=260,y=60,height=40,width=60) root4.mainloop() 9.完整代码 # -*- coding: utf-8 -*- #Author: WXW #@Time: 2021/12/4 16:35 # 学生信息管理系统 from tkinter import * from tkinter import messagebox from PIL import Image,ImageTk import tkinter import pymysql '''连接数据库''' def linkDB(): # 打开数据库连接 db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='studentinfo') # 使用 cursor() 方法创建一个游标对象cur cur = db.cursor(cursor=pymysql.cursors.DictCursor) return db,cur root = Tk() # 禁止最大化按钮(只显示最小化按钮和关闭按钮) root.resizable(False,False) root.minsize(600,600) # 最小尺寸 root.maxsize(600,600) # 最大尺寸 root.title("学生信息管理系统") root.config(width=600) root.config(height=600) # 添加窗口背景图片 canvas = tkinter.Canvas(root, width = 600, # 指定Canvas组件的宽度 height = 600, # 指定Canvas组件的高度 bg = 'white' # 指定Canvas组件的背景色 ) #记得在运行时修改文件所在位置 image = Image.open('F:\\1.jpg') im = ImageTk.PhotoImage(image) #用photoImage打开图片 canvas.create_image(200, 170, image=im) # 使用creat_image将图片添加到Canvas canvas.pack() #增加学生信息 def insert_stu(): #录入学生信息 root1=Tk() root1.title("录入学生信息") root1.config(width=600) root1.config(height=600) #创建关联字符变量 varName=StringVar(root1,value='') varId=StringVar(root1,value='') varClass=StringVar(root1,value='') varAge=StringVar(root1,value='') #创建标签组件 label=Label(root1,text="姓名:",font=("微软雅黑 -20")) label.place(x=30,y=60,height=40,width=80) label=Label(root1,text="学号:",font=("微软雅黑 -20")) label.place(x=30,y=110,height=40,width=80) label=Label(root1,text="班级:",font=("微软雅黑 -20")) label.place(x=30,y=160,height=40,width=80) label=Label(root1,text="年龄:",font=("微软雅黑 -20")) label.place(x=30,y=210,height=40,width=80) #创建文本框组件,同时设置关联的变量 # 姓名entryName # 学号entryId # 班级entryClass # 年龄entryAge entryName=Entry((root1),textvariable=varName) entryName.place(x=120,y=60,height=40,width=200) entryId=Entry((root1),textvariable=varId) entryId.place(x=120,y=110,height=40,width=200) entryClass=Entry((root1),textvariable=varClass) entryClass.place(x=120,y=160,height=40,width=200) entryAge=Entry((root1),textvariable=varAge) entryAge.place(x=120,y=210,height=40,width=200) def buttonOK(): i=0 db, cur = linkDB() stu_id = eval(entryId.get())#学号输入 stu_name =str(entryName.get())#姓名录入 stu_class =eval(entryClass.get())#班级录入 stu_age=eval(entryAge.get())#年龄录入 # 查找完成若有重复的学号,则警告。否则录入数据库 num = cur.execute("SELECT * from student where StuId = " + str(stu_id) + ' ;') if num > 0: i = 1 else: i = 0 if i==1: messagebox.showerror('警告',message='学号重复,请重新输入') else: try: sql1 = "INSERT INTO student(StuId,NAME,CLA,AGE)" sql1+="VALUES(%d,'%s',%d,%d)"%(stu_id,stu_name,stu_class,stu_age) cur.execute(sql1) db.commit() messagebox.showinfo(title='恭喜',message='录入成功!') root1.destroy() except: messagebox.showerror('警告',message='未录入成功') buttonbuttonOK=Button(root1,text="录入学生信息",font=("微软雅黑 -20"),command=buttonOK) buttonbuttonOK.place(x=150,y=300,height=40,width=200) def cancel(): varName.set('') varId.set('') varClass.set('') varAge.set('') #取消键 buttonCancel=Button(root1,text="取消",font=("微软雅黑 -20"),command=cancel) buttonCancel.place(x=150,y=350,height=40,width=200) #退出键 buttondel=Button(root1,text="退出",font=("微软雅黑 -20"),command=root1.destroy) buttondel.place(x=150,y=400,height=40,width=200) root1.mainloop() # 实现删除学生信息 def delete_stu(): root2=Tk() root2.title("删除学生信息") root2.config(width=600) root2.config(height=600) #创建标签 label=Label(root2,text="学号:",font=("微软雅黑 -20")) label.place(x=30,y=20,height=40,width=80) entryId=Entry(root2) entryId.place(x=120,y=20,height=40,width=200) def delete(): db, cur = linkDB() stu_id = eval(entryId.get())#学号输入 cur.execute("DELETE from student where StuId = '%s';"%stu_id) db.commit() messagebox.showinfo(title='恭喜',message='删除成功!') root2.destroy() #删除键 buttondelete=Button(root2,text="删除",font=("微软雅黑 -20"),command=delete) buttondelete.place(x=150,y=160,height=40,width=200) #退出键 buttondel=Button(root2,text="退出",font=("微软雅黑 -20"),command=root2.destroy) buttondel.place(x=150,y=210,height=40,width=200) root2.mainloop() # 查询学生信息 def sel_stu(): root3=Tk() root3.title("查询学生信息") root3.config(width=600) root3.config(height=600) #创建关联变量 sId=StringVar(root3,value='') #创建文本组件框\标签组件 label=Label(root3,text="学号",font=("微软雅黑 -20")) label.place(x=30,y=10,height=40,width=80) selId=Entry((root3),textvariable=sId) selId.place(x=120,y=10,height=40,width=200) def select(): #创建关联字符变量 varName=StringVar(root3,value='') varId=StringVar(root3,value='') varClass=StringVar(root3,value='') varAge=StringVar(root3,value='') db, cur = linkDB() stu_id = eval(selId.get())#学号输入 num = cur.execute("SELECT * from student where StuId = '%d';"%stu_id) db.commit() if num > 0: cursor = cur.fetchall() for row in cursor: if stu_id == row['StuId']: stu_name = row['NAME'] stu_class = row['CLA'] stu_age = row['AGE'] varName.set(stu_name) varId.set(stu_id) varClass.set(stu_class) varAge.set(stu_age) else: messagebox.showinfo(title='警告', message='无当前学生信息') #创建标签组件 label=Label(root3,text="姓名:",font=("微软雅黑 -20")) label.place(x=30,y=110,height=40,width=80) label=Label(root3,text="学号:",font=("微软雅黑 -20")) label.place(x=30,y=160,height=40,width=80) label=Label(root3,text="班级:",font=("微软雅黑 -20")) label.place(x=30,y=210,height=40,width=80) label=Label(root3,text="年龄:",font=("微软雅黑 -20")) label.place(x=30,y=260,height=40,width=80) #创建文本框组件,同时设置关联的变量 # 姓名entryName # 学号entryId # 班级entryClass # 年龄entryAge entryName=Entry((root3),textvariable=varName) entryName.place(x=120,y=110,height=40,width=200) entryId=Entry((root3),textvariable=varId) entryId.place(x=120,y=160,height=40,width=200) entryClass=Entry((root3),textvariable=varClass) entryClass.place(x=120,y=210,height=40,width=200) entryAge=Entry((root3),textvariable=varAge) entryAge.place(x=120,y=260,height=40,width=200) #查询键 buttonselect=Button(root3,text="查询",font=("微软雅黑 -20"),command=select) buttonselect.place(x=200,y=60,height=40,width=100) #取消键 def cancel(): sId.set('') buttoncancel=Button(root3,text="取消",font="微软雅黑 -20",command=cancel) buttoncancel.place(x=50,y=60,height=40,width=100) #退出键 buttondel=Button(root3,text="退出",font="微软雅黑 -20",command=root3.destroy) buttondel.place(x=350,y=60,height=40,width=100) root3.mainloop() def change_stu(): root4=Tk() root4.title("修改学生信息") root4.config(width=600) root4.config(height=600) #创建关联变量 sId=StringVar(root4,value='') #创建文本组件框\标签组件 label=Label(root4,text="学号",font=("微软雅黑 -20")) label.place(x=30,y=10,height=40,width=80) selId=Entry((root4),textvariable=sId) selId.place(x=120,y=10,height=40,width=200) #创建关联字符变量 varName=StringVar(root4,value='') varId=StringVar(root4,value='') varClass=StringVar(root4,value='') varAge=StringVar(root4,value='') #创建标签组件 label=Label(root4,text="姓名:",font=("微软雅黑 -20")) label.place(x=30,y=110,height=40,width=80) label=Label(root4,text="学号:",font=("微软雅黑 -20")) label.place(x=30,y=160,height=40,width=80) label=Label(root4,text="班级:",font=("微软雅黑 -20")) label.place(x=30,y=210,height=40,width=80) label=Label(root4,text="年龄:",font=("微软雅黑 -20")) label.place(x=30,y=260,height=40,width=80) #创建文本框组件,同时设置关联的变量 # 姓名entryName # 学号entryId # 班级entryClass # 年龄entryAge entryName=Entry((root4),textvariable=varName) entryName.place(x=120,y=110,height=40,width=200) entryId=Entry((root4),textvariable=varId) entryId.place(x=120,y=160,height=40,width=200) entryClass=Entry((root4),textvariable=varClass) entryClass.place(x=120,y=210,height=40,width=200) entryAge=Entry((root4),textvariable=varAge) entryAge.place(x=120,y=260,height=40,width=200) def select(): db, cur = linkDB() stu_id = eval(selId.get())#学号输入 num = cur.execute("SELECT * from student where StuId = %d;"%stu_id) if num > 0: i = 1 else: i = 0 if i==1: cursor = cur.fetchall() db.commit() for row in cursor: if stu_id == row['StuId']: stu_name = row['NAME'] stu_class = row['CLA'] stu_age = row['AGE'] varName.set(stu_name) varId.set(stu_id) varClass.set(stu_class) varAge.set(stu_age) else: messagebox.showerror('警告',message='无当前学生信息') def saveName(): db, cur = linkDB() name=entryName.get() sql="UPDATE student SET NAME='%s' WHERE StuId=%d;"%(name,eval(selId.get())) cur.execute(sql) db.commit() messagebox.showinfo(title='恭喜',message='保存成功!') def saveCla(): db, cur = linkDB() cla=eval(entryClass.get()) sql = "UPDATE student SET CLA='%s' WHERE StuId=%d;" % (cla, eval(selId.get())) cur.execute(sql) db.commit() messagebox.showinfo(title='恭喜', message='保存成功!') def saveAge(): db, cur = linkDB() age=eval(entryAge.get()) sql="UPDATE student SET AGE=%d WHERE StuId=%d;" % (age,eval(selId.get())) cur.execute(sql) db.commit() messagebox.showinfo(title='恭喜',message='保存成功!') #保存键 buttonname=Button(root4,text="保存",font=("微软雅黑 -20"),command=saveName) buttonname.place(x=330,y=110,height=40,width=60) buttoncla=Button(root4,text="保存",font=("微软雅黑 -20"),command=saveCla) buttoncla.place(x=330,y=210,height=40,width=60) buttonage=Button(root4,text="保存",font=("微软雅黑 -20"),command=saveAge) buttonage.place(x=330,y=260,height=40,width=60) def cancel(): sId.set('') #取消键 buttoncancel=Button(root4,text="取消",font=("微软雅黑 -20"),command=cancel) buttoncancel.place(x=20,y=60,height=40,width=60) #查询键 buttonselect=Button(root4,text="查询",font=("微软雅黑 -20"),command=select) buttonselect.place(x=100,y=60,height=40,width=60) #退出键 buttondel=Button(root4,text="退出",font="微软雅黑 -20",command=root4.destroy) buttondel.place(x=260,y=60,height=40,width=60) root4.mainloop() #创建顶级菜单及其下拉菜单 menubar=Menu(root) filemenu=Menu(menubar,tearoff=False) filemenu.add_command(label="增加",command=insert_stu) filemenu.add_command(label="删除",command=delete_stu)#command接删除函数/下面接修改函数 filemenu.add_command(label="修改",command=change_stu) filemenu.add_command(label="查询",command=sel_stu) filemenu.add_separator() filemenu.add_command(label="退出",command=root.destroy) menubar.add_cascade(label="菜单",menu=filemenu) #显示菜单 root.config(menu=menubar) buttoninsert_stu=Button(root,text="录入学生信息",font=("微软雅黑 -20"),command=insert_stu) buttoninsert_stu.place(x=200,y=150,height=40,width=200) buttondelete_stu=Button(root,text="删除学生信息",font=("微软雅黑 -20"),command=delete_stu) buttondelete_stu.place(x=200,y=250,height=40,width=200) buttonchange_stu=Button(root,text="修改学生信息",font=("微软雅黑 -20"),command=change_stu) buttonchange_stu.place(x=200,y=350,height=40,width=200) buttonsel_stu=Button(root,text="查询学生信息",font=("微软雅黑 -20"),command=sel_stu) buttonsel_stu.place(x=200,y=450,height=40,width=200) root.mainloop()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3